package a26_Collection.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * @Author quan
 * @Description Collection接口是List和Map接口的父类
 * List接口：有序，可重复，有索引——>ArrayList,LinkedList,Vector都是该接口的实现类
 * Map 接口：无序，不重复，无索引——>HashSet(LinkedHashSet),TreeSet是该接口的实现类
 * @Date 2023/3/14 11:40
 */
public class CommenMethod {
    public static void main(String[] args) {
        //Collection接口的常用方法
        //要演示Collection接口，不能直接创建接口的对象，因此这里使用接口的实现类来进行对象的创建，多态的方式
        Collection<String> coll = new ArrayList<>();//ArrayList是Collection的实现类
        Collection<Student> coll2 = new ArrayList<>();//ArrayList是Collection的实现类
//        Collection<String> coll1 = new HashSet<>();
        //1、添加方法：有返回值
        //注意：如果是Set接口的实现类，那么添加元素的时候满足“无序，不重复，无索引”的原则
        //add方法有一个返回值，若添加了重复元素，则返回false
        //对于List接口的实现类，则添加元素返回值一直是true
//        System.out.println(coll1.add("aaa"));//true
//        System.out.println(coll1.add("aaa"));//false
        System.out.println(coll.add("aaa"));//true
        System.out.println(coll.add("bbb"));//true

        //2、清除
//        coll.clear();
//        System.out.println(coll);
        //3、删除：是List和Set共性的内容，因此只能按元素删除，有返回值
        coll.remove("aaa");
        System.out.println(coll);
        System.out.println(coll.remove("aaa"));
        //4、contains方法:有返回值
        //注意：Collection中的contains方法在底层是依赖于equals方法进行比较的，因此如果比较的对象是
        //Student自定义类的对象，则要在类中重写equals方法
//        Student s1 = new Student("张三",12);
//        Student s2 = new Student("李四",32);
//        coll2.add(s1);
//        coll2.add(s2);
//        Student s3 = new Student("张三",12);
//        System.out.println(coll2.contains(s3));//false虽然内容一致，但是是根据地址进行比较的，所以为false；因此要比较内容的话，就对equals方法进行重写

        //5、isEmpty():有返回值
        System.out.println(coll.isEmpty());
        //6、int size 有返回值int类型
        System.out.println(coll.size());


    }
}
